xgboost 常用参数
XGBoost 的参数
一般参数
- booster[default = gbtree],使用哪种基分类器,可选:gblinear,dart
- silent[default = 0],0表示输出运行信息,1表示不输出
- nthread, 使用多少线程运行xgboost
- num_pbuffer,xgboost自动设置
- num_feature,自动设置,取决于读入样本特征的最大值
Tree booster的参数
- eta[default = 0.3,alias: learn_rate],缩减系数,范围[0-1]
- gamma[default = 0,alias:min_split_loss]
分裂节点的损失减小值只有大于等于gamma节点才分裂,gamma值越大,算法越保守,越不容易过拟合,但性能就不一定能保证,所以要平衡 - max_depth[default = 6],树的最大深度,增大深度容易过拟合
- min_child_weight[default = 1],最小样本权重和(每个样本的权重等于其对应的二阶导),如果新分裂的节点的样本权重和小于min_child_weight则停止分裂。range:[0,无穷大]
- max_delta_step[default = 0],待定
- subsample[default = 1],每棵树对训练集的采样率,如果设为0.5,则每训练一棵树都随机选择一半的训练集训练。
- colsample_bytree[default = 1],刚开始构建树时对特征的采样率
- colsample_bylevel[default = 1],在构建每一层节点时列的采样率
- lambda[default = 1],L2范数正则项系数
- alpha[default = 0],L1正则项系数
- tree_method,string[default=’auto’]
choices:{‘auto’,’exact’,’approx’} - sketch_eps[default = 0.03],近似直方图算法中分桶的参数,仅用于近似算法中,一般不用设定
- scale_pos_weight[default = 1],用于控制正例与负例权重的平衡,对于不平衡数据有用,具体参见这里
Learning Task parameters
学习任务参数:objective[default=reg:linear]
- “reg:linear”,linear regression
- “reg:logistic”,logistic regression
- “binary:logistic”,用于二类问题的logistic regression,输出概率
- “binary:logitraw”,同上,不过输出的是sigmoid function转换之前的score
- “count:poisson”,用于计数问题的泊松回归问题?
- “multi:softmax”,用于多类分类问题,并采用softmax损失函数,需要设定 num_class
- “multi:softprob”,同上,不过输出所有n个类的概率
- “rank:pairwise”,用于排序问题,损失函数为pairwise loss
- “reg::gamma”
- base_score[default = 0.5],所有样本的初始预测值,迭代次数多时,该参数影响不大
- eval_metric,评价准则
有以下几种:1. 'rmse' 2. 'mae' 3. 'logloss', 负的对数似然 4. 'error',二类分类错误率,输出大于0.5时为正例,否则负例 5. 'error@t',同上,不过指定正负例阈值 6. 'merror',多类分类错误率 7. 'mlogloss',多类的logloss 8. 'auc' 9. 'ndcg',[Normalized Discounted Cumulative Gain][3] 10. 'map',[Mean average precision][4] 11. 等。。
- seed[default = 0]
- random number seed